

import java.io.IOException;
import java.io.Serializable;
import java.sql.Timestamp;
 
	@SuppressWarnings("serial")
	public class Usuario implements Serializable{
	private int telefono;
	private String nombre;
	private String ip;
	int puerto;
	private String dispositivo;
	private Rol rol;// pasajero | conductor
	private float lat_ini;
	private float lon_ini;
	private float lat_fin;
	private float lon_fin;
	private Timestamp fecha_hora;
	private int num_asiento;
	private int estado;
	
	public enum Rol{conductor,pasajero}
	
	public Usuario(String nombre, String ip, int puerto,String dispositivo){
		this.nombre = nombre;
		this.ip = ip;
		this.puerto = puerto;
		this.dispositivo = dispositivo;
	}
	
	public String toString(){
		return nombre+" "+telefono+" "+ip+":"+puerto+" "+dispositivo+" "+rol+" "+lat_ini+","+lon_ini+" "+lat_fin+","+lon_fin+" "+fecha_hora+" "+num_asiento+" "+estado;
	}

	public void setTelefono(int telefono){
		this.telefono = telefono;
	}
	public void setNombre(String nombre){
		this.nombre = nombre;
	}
	public void setIp(String ip){
		this.ip = ip;
	}
	public void setPuerto(int puerto){
		this.puerto = puerto;
	}
	public String getDispositivo() {
		return dispositivo;
	}
	public void setDispositivo(String dispositivo) {
		this.dispositivo = dispositivo;
	}
	public Rol getRol() {
		return rol;
	}
	public void setRol(Rol rol) {
		this.rol = rol;
	}
	public float getLat_ini() {
		return lat_ini;
	}
	public void setLat_ini(float latIni) {
		lat_ini = latIni;
	}
	public float getLon_ini() {
		return lon_ini;
	}
	public void setLon_ini(float lonIni) {
		lon_ini = lonIni;
	}
	public float getLat_fin() {
		return lat_fin;
	}
	public void setLat_fin(float latFin) {
		lat_fin = latFin;
	}
	public float getLon_fin() {
		return lon_fin;
	}
	public void setLon_fin(float lonFin) {
		lon_fin = lonFin;
	}
	public Timestamp getFecha_hora() {
		return fecha_hora;
	}
	public void setFecha_hora(Timestamp fechaHora) {
		fecha_hora = fechaHora;
	}
	public int getNum_asiento() {
		return num_asiento;
	}
	public void setNum_asiento(int numAsiento) {
		num_asiento = numAsiento;
	}
	public int getEstado() {
		return estado;
	}
	public void setEstado(int estado) {
		try {
			if(this.rol.toString().equals("conductor")){
				this.num_asiento--;
				if(this.num_asiento==0){
					DBManager.setConductor(this.telefono, 0, this.num_asiento);
				}else{
					DBManager.setConductor(this.telefono, estado, this.num_asiento);
				}			
			}else{
				DBManager.setPasajero(this.telefono, estado);
			}
			this.estado = estado;
		}catch (IOException e) {
			e.printStackTrace();
		}
	}
	public int getTelefono() {
		return telefono;
	}
	public String getNombre() {
		return nombre;
	}
	public String getIp() {
		return ip;
	}
	public int getPuerto() {
		return puerto;
	}
}
